# coding: utf-8
"""
@python version : python3.10
@file name      : main.py
@date           : 2024/5/15 16:18
@author         : ziyang.yang@aliyun.com
@gitee          : https://gitee.com/ziyangyang1318
@blog           : blog.yangziyang.top
@describe       : 
"""
from fastapi import FastAPI
from tortoise.contrib.fastapi import register_tortoise
from settings import TORTOISE_ORM
import uvicorn

app = FastAPI()

# 该方法会在fastapi启动时触发，内部通过传递进去的app对象，监听服务启动和终止事件
# 当检测到启动事件时，会初始化Tortoise对象，如果generate_schemas为True则还会进行数据库迁移
# 当检测到终止事件时，会关闭连接
register_tortoise(
    app,
    config=TORTOISE_ORM,
    # generate_schemas=True,  # 如果数据库为空，则自动生成对应表单，生产环境不要开
    # add_exception_handlers=True,  # 生产环境不要开，会泄露调试信息
)

# 异步
@app.get("/")
async def index():
    return {'code': 200}


if __name__ == '__main__':
    file_name = __file__.split(".")[0].split('\\')[-1]
    uvicorn.run(f'{file_name}:app', port=8000, reload=True)
